package dao;
import java.util.List;

import org.hibernate.classic.Session;
import org.hibernate.Transaction;

import util.HibernateUtil;
import entity.Pais;
import entity.Produto;

public class ProdutoDaoImplementation implements ProdutoDao {

	public void save(Produto produto) 
	{
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction transaction = session.beginTransaction();
		session.save(produto);
		transaction.commit();
		session.close();
	}

	public void update(Produto produto) 
	{
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction transaction = session.beginTransaction();
		session.update(produto);
		transaction.commit();
		session.close();
	}

	public void delete(Produto produto) 
	{
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction transaction = session.beginTransaction();
		session.delete(produto);
		transaction.commit();
		session.close();
	}

	public void consult(Produto produto) 
	{
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction transaction = session.beginTransaction();
		produto = (Produto) session.load(Produto.class, new String("Produto"));
	}

	public Produto getProduto(long id) 
	{
		Session session = HibernateUtil.getSessionFactory().openSession();
		return (Produto) session.load(Produto.class, id);
	}
	
	public List<Produto> list() 
	{
	Session session = HibernateUtil.getSessionFactory().openSession();
	Transaction transaction = session.beginTransaction();
	String sql = "SELECT new Produto( p.idProduto, p.descricao, p.tipoProduto, p.valorUnitario, p.precoVenda, p.percentIpi, p.percentIcms, p.estoque) FROM Produto p";
	List<Produto> lista = session.createQuery(sql).list();
	transaction.commit();
	session.close();
	return lista;
	}
	
	

}
